It is known in the field of multi-value nonvolatile semiconductor memory that memory cells have their respective temperature dependencies which are different according to their respective thresholds. Therefore, in a normal read, the read voltages used to determine the respective thresholds of all the memory cells are individually adjusted based on different temperature coefficients suitable for the respective memory cells. On the other hand, a distribution read is performed to ascertain the threshold distribution state exhibited by all the memory cells, i.e., to ascertain the shape of a mountain or a valley, etc., for every one of the thresholds of all the memory cells. However, in the distribution read, the read voltages used to determine the respective thresholds of all the memory cells are adjusted based on a single common (the same) temperature coefficient irrespective of difference in read voltage. Accordingly, the threshold distribution detected by the distribution read may not be in agreement with the threshold distribution actually exhibited at the normal read.